using System;
using System.Collections;
using System.Collections.Generic;

namespace Neturion.Dados
{
    /// <summary>
    /// 
    /// </summary>
    public class MotivoProtocolo
    {
        private int _motivoProtocoloId;
        private string _codigo;
        private string _descricao;
        private TipoMotivo _tipoMotivo;
        private DateTime? _inicioVigencia;
        private DateTime? _fimVigencia;
        private NeturionLog _neturionLog;
        private IList _listaAssuntos;  

        public MotivoProtocolo()
        {
            _listaAssuntos = new List<Assunto>();
        }

        /// <summary>
        /// 
        /// </summary>
        public virtual int MotivoProtocoloId
        {
            get { return _motivoProtocoloId; }
            set { _motivoProtocoloId = value; }
        }

        /// <summary>
        /// 
        /// </summary>
        public virtual string Codigo
        {
            get { return _codigo; }
            set { _codigo = value; }
        }

        /// <summary>
        /// 
        /// </summary>
        public virtual string Descricao
        {
            get { return _descricao; }
            set { _descricao = value; }
        }

        /// <summary>
        /// 
        /// </summary>
        public virtual TipoMotivo TipoMotivo
        {
            get { return _tipoMotivo; }
            set { _tipoMotivo = value; }
        }

        /// <summary>
        /// 
        /// </summary>
        public virtual DateTime? InicioVigencia
        {
            get { return _inicioVigencia; }
            set { _inicioVigencia = value; }
        }

        /// <summary>
        /// 
        /// </summary>
        public virtual DateTime? FimVigencia
        {
            get { return _fimVigencia; }
            set { _fimVigencia = value; }
        }

        /// <summary>
        /// 
        /// </summary>
        public virtual NeturionLog NeturionLog
        {
            get { return _neturionLog; }
            set { _neturionLog = value; }
        }

        /// <summary>
        /// 
        /// </summary>
        public virtual IList ListaAssuntos
        {
            get { return _listaAssuntos; }
            set { _listaAssuntos = value; }
        }

        /// <summary>
        /// 
        /// </summary>
        /// <param name="assunto"></param>
        public virtual void AdicionarAssunto(Assunto assunto)
        {
            ListaAssuntos.Add(assunto);
        }

        /// <summary>
        /// 
        /// </summary>
        /// <param name="assunto"></param>
        public virtual void RemoverAssunto(Assunto assunto)
        {
            ListaAssuntos.Remove(assunto);
        }
    }
}